import axios from './axios.ts'

// 创建空间接口
export function createSpace(data:object):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'post',
      url: 'api/createSpace',
      data
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 返回所有空间接口
export function getAllSpace():any{
  return new Promise((resolve, reject) => {
    axios({
      method:'get',
      url: 'api/getAllSpace'
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 返回单个空间信息
export function getOneSpace(spaceId:number):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'get',
      url: `api/getOneSpace?spaceId=${spaceId}`
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 加入空间
export function joinSpace(data:object):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'post',
      url: `api/joinSpace`,
      data
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 退出空间
export function exitSpace(data:object):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'post',
      url: `api/exitSpace`,
      data
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 查看指定用户已加入的空间
export function getUserJoinSpace(phone:string):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'get',
      url: `api/getUserJoinSpace?phone=${phone}`,
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 查看指定用户创建的空间
export function getUserCreateSpace(phone:string):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'get',
      url: `api/getUserCreateSpace?phone=${phone}`,
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 根据用户id查询用户创建和加入的空间
export function GetUserSpace(user_id:number):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'get',
      url: `api/getUserSpace?user_id=${user_id}`,
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 更新空间信息
export function UpdateSpaceMessage(data:object):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'post',
      url: `api/updateSpaceMessage`,
      data
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 删除空间
export function DeleteSpace(space_id:number):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'get',
      url: `api/deleteSpace?space_id=${space_id}`,
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 获取空间内所有用户信息
export function GetSpaceUser(space_id:number):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'get',
      url: `api/getSpaceUser?space_id=${space_id}`,
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 分享空间
export function ShareSpace(data:object):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'post',
      url: `api/shareSpace`,
      data
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}

// 分享空间
export function CheckShareSpace(data:object):any{
  return new Promise((resolve, reject) => {
    axios({
      method:'post',
      url: `api/checkShare`,
      data
    }).then(res => {
      resolve(res.data)
    }).catch(() => {
      window.$message.error("接口异常")
      reject(new Error("接口异常"))
    })
  })
}
